Non-volatile memories include memories which retain data even when the power supply is turned off. Typical memories in this category are various read only memories (ROMs), such as mask programmable ROMs, erasable programmable ROMs (EPROMs), and electrically erasable read only memories (EEPROMs). These memories typically have memory cells which are either in a high conductivity or low conductivity state.
In the case of EPROMs and EEPROMs, the memory cells have either a relatively high threshold voltage or a relatively low threshold voltage which is used to obtain the high and low conductivity states. In the case of EPROMs, the high conductivity state is the unprogrammed or erased state. The threshold voltage is increased by application of a programming voltage. In the case of EEPROMs, the erased state is the low conductivity state. An EEPROM is programmed to a low threshold voltage by application of a programming voltage which removes electrons from a floating gate which in turn causes a higher conductivity. In either the EPROM or EEPROM case, the determination of the logic state of a cell is made by determining on which side of some predetermined conductivity the cell conductivity is. If a cell is on one side of a certain conductivity, it is programmed. If it is on the other side of this conductivity, it is unprogrammed or erased. In the case of EPROMs, the programmed side is toward lower conductivity. In the case of EEPROMs, the programmed side is toward higher conductivity.
Particularly in EPROMs but also applicable to EEPROMs, is the desirability of overprogramming to ensure that there is sufficient distinction between the high and low conductivity states for reliable detection. A technique which has been used in EPROMs is to apply a programming voltage for some predetermined duration. This duration is now typically between 100 and 500 microseconds. After application of the programming voltage, the cell which has been selected for programming is then read. If the cell is then detected as being in the programmed state, some predetermined number of applications of the programming voltage are applied to obtain overprogramming. This predetermined number of extra applications can either be a set number or it can be a function of the number of applications required to first reach the programmed state. In either case, there is an assumption that the extra applications actually did result in additional electrons being transferred in or out of the floating gate and consequently, increasing the margin between the programmed state and the unprogrammed state. This does not, however, ensure the degree to which there is a margin.